package co.yixiang.modules.user.vo;


import co.yixiang.modules.order.vo.UserOrderCountVo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * <p>
 * 用户表 查询结果对象
 * </p>
 *
 * @author hupeng
 * @date 2019-10-16
 */
@Data
@ApiModel(value = "YxUserQueryVo对象", description = "用户表查询参数")
public class YxUserQueryVo implements Serializable {
    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "用户id")
    private Long uid;

    @ApiModelProperty(value = "用户账户(跟accout一样)")
    private String username;

    @ApiModelProperty(value = "用户账号")
    private String account;

    @ApiModelProperty(value = "优惠券数量")
    private Integer couponCount = 0;

    @ApiModelProperty(value = "订单详情数据")
    private UserOrderCountVo orderStatusNum;


    private Integer statu;

    @ApiModelProperty(value = "总的签到天数")
    private Integer sumSignDay;

    @ApiModelProperty(value = "当天是否签到")
    private Boolean isDaySign;

    @ApiModelProperty(value = "昨天是否签到")
    private Boolean isYesterDaySign;

    @ApiModelProperty(value = "核销权限")
    private Boolean checkStatus;



    @ApiModelProperty(value = "真实姓名")
    private String realName;

    @ApiModelProperty(value = "生日")
    private Integer birthday;

    @ApiModelProperty(value = "身份证号码")
    //@JsonIgnore
    private String cardId;

    @ApiModelProperty(value = "用户备注")
    private String mark;


    @ApiModelProperty(value = "用户昵称")
    private String nickname;

    @ApiModelProperty(value = "用户头像")
    private String avatar;

    @ApiModelProperty(value = "手机号码")
    private String phone;

    @ApiModelProperty(value = "添加ip")
    private String addIp;

    @ApiModelProperty(value = "最后一次登录ip")
    private String lastIp;

    @ApiModelProperty(value = "用户余额")
    private BigDecimal nowMoney;

    @ApiModelProperty(value = "佣金金额")
    private BigDecimal brokeragePrice;

    @ApiModelProperty(value = "用户剩余积分")
    private BigDecimal integral;

    @ApiModelProperty(value = "连续签到天数")
    private Integer signNum;

    @ApiModelProperty(value = "1为正常，0为禁止")
    private Boolean status;

    @ApiModelProperty(value = "等级")
    private Integer level;

    @ApiModelProperty(value = "推广元id")
    private Long spreadUid;

    @ApiModelProperty(value = "用户类型")
    private String userType;

    @ApiModelProperty(value = "是否为推广员")
    private Integer isPromoter;

    @ApiModelProperty(value = "用户购买次数")
    private Integer payCount;

    @ApiModelProperty(value = "下级人数")
    private Integer spreadCount;

    @ApiModelProperty(value = "详细地址")
    private String addres;

    @ApiModelProperty(value = "管理员编号 ")
    private Integer adminid;

    @ApiModelProperty(value = "用户登陆类型，h5,wechat,routine")
    private String loginType;

    @ApiModelProperty(value = "是否会员")
    private Boolean vip;

    @ApiModelProperty(value = "会员ID")
    private Integer vipId;

    @ApiModelProperty(value = "会员图标")
    private String vipIcon;

    @ApiModelProperty(value = "会员名称")
    private String vipName;

    @ApiModelProperty(value = "普通会员数量")
    private Integer normalCount;

    @ApiModelProperty(value = "订单数量")
    private Integer vipCount;

    @ApiModelProperty(value = "所有上级id")
    private String path;

    @ApiModelProperty(value = "是否399会员")
    private String whether_slim;

    @ApiModelProperty(value = "到期时间")
    private Date validity_date;

    @ApiModelProperty(value = "复购金额")
    private BigDecimal balanceSum;

    @ApiModelProperty(value = "微信公众号openid")
    private String wxOpenId;

    @ApiModelProperty(value = "小程序openId")
    private String uniOpenId;

    @ApiModelProperty(value = "微信名称")
    private String wechatAccount;

    @ApiModelProperty(value = "运营中心区域id ")
    private Long areaId;

    @ApiModelProperty(value = "运营中心区域")
    private String areaName;

    @ApiModelProperty(value = "是否开启运营中心")
    private String isOpen;

    @ApiModelProperty(value = "区域类型")
    private String areaType;

    @ApiModelProperty(value = "是否自购推一返三活动产品")
    private String isPinkSelf;

    @ApiModelProperty(value = "累计直属购买推一返三活动产品总单数")
    private Integer pinkCount;

    @ApiModelProperty(value = "期初订单数")
    private Integer baseCount;

    @ApiModelProperty(value = "是否vip会员")
    private String whetherVipSlim;

    @ApiModelProperty(value = "成为vip时间")
    private Date vipDate;

    @ApiModelProperty(value = "银行卡号")
    private String bankCode;

    @ApiModelProperty(value = "银行卡开户行名称")
    private String bankName;

    @ApiModelProperty(value = "银行卡开户人名称")
    private String bankUserName;

    @ApiModelProperty(value = "添加时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date createTime;

    @ApiModelProperty(value = "是否开启成为联创会员的条件")
    private String isOpenLian;

    @ApiModelProperty(value = "是否开启成为皇冠会员的条件")
    private String isOpenCrown;

    /** 是否无上级*/
    @ApiModelProperty(value = "是否无上级")
    private String isNoSpread;

    /** 是否购买直通车*/
    @ApiModelProperty(value = "是否购买直通车")
    private String isThrough;

    /** 赠送vip数量 */
    @ApiModelProperty(value = "赠送vip数量")
    private Integer vipHroughTrain;

    /** 赠送黄金数量 */
    @ApiModelProperty(value = "赠送黄金数量")
    private Integer goldHroughTrain;

    /** 赠送钻石数量 */
    @ApiModelProperty(value = "赠送钻石数量")
    private Integer diamondsHroughTrain;

    /** 赠送人id */
    @ApiModelProperty(value = "赠送人id")
    private Long throughUid;

    /** 授权时间 */
    @ApiModelProperty(value = "添加时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date authDate;


    /** 授权记录 */
    @ApiModelProperty(value = "授权记录")
    private String authRemark;

    /** 已授权的用户数量 */
    @ApiModelProperty(value = "已授权的用户数量")
    private Integer authThroughCount;

    /** 是否联创*/
    @ApiModelProperty(value = "是否联创")
    private String whetherCrown;

    /** 是否有授权书*/
    @ApiModelProperty(value = "是否有授权书")
    private String whetherAuthorize;

    /** 授权开始时间 */
    @ApiModelProperty(value = "授权开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date authBeginDate;

    /** 授权结束时间 */
    @ApiModelProperty(value = "授权结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    private Date authEndDate;

    /** 抽奖次数 */
    @ApiModelProperty(value = "抽奖次数")
    private Integer prizeCount;

    /** 讲师考试*/
    @ApiModelProperty(value = "讲师考试")
    private String isCodePass;

    /** 晋升考试*/
    @ApiModelProperty(value = "晋升考试")
    private String isPromotionPass;

    /** 新版升级的标识*/
    private String isNew;

    /** 是否授权 */
    private Integer isAuth;

}
